// 客服 email
export const SUPPORT_MAIL = 'support@fantasi.one'
// 成為創作者 email
export const CREATOR_MAIL = 'creator@fantasi.one'

/**
 * 數字大小代表轉場效果判別權重
 * 從小到大往左移
 * 從大到小往右移
 * -1 專門給 publish zoom in 進場
 */
export const NAVS = {
  PUBLISH: -1,
  'LANG-PUBLISH': -1,

  HOME: 1,
  'LANG-HOME': 1,

  SEARCH: 2,
  'LANG-SEARCH': 2,

  MESSAGE: 3,
  'LANG-MESSAGE': 3,

  MINE: 4,
  'LANG-MINE': 4,

  CREATOR: 5,
  'LANG-CREATOR': 5,

  'SHARE-MEDIA': 6,
  'LANG-SHARE-MEDIA': 6,

  'POPULAR-CREATORS': 7,
  'LANG-POPULAR-CREATORS': 7,

  'SIGN-UP': 8,
  'LANG-SIGN-UP': 8,
}

// 登入與註冊流程的路由設置
export const AUTH_ROUTES = {
  LOGIN: 1,
  SIGN_UP: 2,
  FORGET_PASSWORD: 3,
  RESET_LINK_SENT: 4,
}

export const CHECK_ACCOUNT_EXISTS = {
  ACCOUNT: 1,
  USERNAME: 5,
  EMAIL: 10,
}

// 成為創作者流程的路由設置
export const BECOME_CREATOR_ROUTES = {
  CONTRACT: 1,
  VERIFY_INFO: 2,
  UPLOAD_IDENTITY: 3,
  IDENTITY_PROFILE: 4,
  CONFIRM: 5,
  PHOTO_CAPTURE: 6,
}

// 成為創作者的照片類型
export const BECOME_CREATOR_PHOTO_TYPE = {
  IDENTITY: 1, // 證件照
  FACE: 2, // 臉部照
}

// 證件類型
export const CREDENTAIL_TYPE = {
  PASSPORT: 1, // 護照
  IDENTITY_CARD: 2, // 身分證
  DRIVER_LICENCE: 3, // 駕照
}

// 創作者申請狀態
export const CREATOR_APPLY_STATUS = {
  NOT_APPLY: 0, // 未申請
  REVIEW: 1, // 審核中
  PASS: 2, // 通過
  REJECT: 3, // 拒絕
}

export const LOCAL_STORAGE_KEYS = {
  ACCOUNT_INFO: '__ACCOUNT_INFO',
  // 後端傳回來的是逗號分隔字串，原本的 storage 裡面有用 timestamp 當 id，還原的時後無法兼容
  // 所以改成第2版沒有 timestamp 只有純字串的
  FEED_TAGS: '__FEED_TAGS_2',
  COOKIE_AGREEMENT: '__COOKIE_AGREEMENT',

  LOCALE: '__LOCALE',

  ADULT_CHECKED: '__ADULT_CHECKED',
  GUEST_INTERESTED_IN: '__GUEST_INTERESTED_IN',
  GENDER: '__GENDER',

  VIP_TIP_AUTO_SHOW: '__VIP_TIP_AUTO_SHOW',
  MUTE_TIP_AUTO_SHOW: '__MUTE_TIP_AUTO_SHOW',
  CARE_ME_MORE_TIP: '__CARE_ME_MORE_TIP',

  INSTALLER_TIP_DATE: '__INSTALLER_TIP_DATE',

  TEMP_CLOSE_STATUS: '__TEMP_CLOSE_STATUS',
  CLOSE_VERIFY_TIME: '__CLOSE_VERIFY_TIME',

  POSTBACK_PARAMS: '__POSTBACK_PARAMS',
  POSTBACK_SHARE_AFF: '__POSTBACK_SHARE_AFF',
  POSTBACK_CID: '__POSTBACK_CID',
}

export const POPUP_DIALOG_TYPE = {
  ALERT: 1,
  CONFIRM: 2,
  SELECTION: 3,
  INSTALL_QRCODE: 4,

  TIP: 11, // 小費
  ACCUSE: 12, // 檢舉
  SUBSCRIBE: 13, // 訂閱
  SHOP_BUY: 14, // 購買商品
  SUBSCRIBE_SUCCESS: 15, // 訂閱成功
  SHOP_BUY_SUCCESS: 16, // 購買商品成功
  CHAT_BUY: 18, // 購買聊天打包商品
  EMBED_PAYMENT: 19, // 嵌入式支付
  CREDIT_CARD: 20, // 新增信用卡

  // publish
  SERVICE_SELECT: 21,

  PREMIUM: 22, // 購買 Premium 會員
  PREMIUM_SUCCESS: 23, // 購買 Premium 會員成功

  // 個人主頁設置，社群連結設定
  SOCIAL_LINK: 31,

  // 成為創作者
  BECOME_CREATOR_SOCIAL_LINK: 32,
  BECOME_CREATOR_VALIDATION_WAY: 33,
  BECOME_CREATOR_VERIFY_EMAIL: 34,

  // 上傳進度視窗
  PROGRESS: 51,

  // 訊息通知開關設定
  MESSAGE_NOTIFY_SETTING: 61,

  // 用戶回饋
  MINE_FEEDBACK: 71,

  TEST_CUSTOM: 999, // 測試用範例
  TEST_CUSTOM2: 998, // 測試用範例

  // Cookie政策
  COOKIE_POLICY: 1000,
  PRIVACY_POLICY: 1001,
  TERMS_OF_SERVICE: 1002,
}

export const POPUP_AD_DIALOG = {
  // OPENING: 1, 已過期
  // CREATOR_CAMPAIGN: 2, 已過期
  PREMIUM: 3,
}

/**
 * 沒有資料需要進行驗證和傳回給呼叫端的 POPUP_DIALOG_TYPE
 */
export const NO_DATA_POPUP_DIALOG = Object.freeze([POPUP_DIALOG_TYPE.ALERT, POPUP_DIALOG_TYPE.CONFIRM])

export const PURCHASE_TAB = {
  TRANSACT: 1,
  SUBSCRIPT: 2,
}

/**
 * 帖子權限
 */
export const FEED_PERMISION = {
  ALL: 1,
  SUB: 5,
  SHOP: 10,
  FUTURE: 999,
}

export const MEDIA_TYPE = {
  VIDEO: 1,
  PHOTO: 5,
  SHOP: 10,
  SUBS: 15,
  FREE: 20,
  FORYOU: 25,
}

export const AD_TYPE = {
  VIDEO: 10,
  PHOTO: 15,
}

export const CHAT_PANEL_TAB = {
  COMMENT: 1,
  CHAT: 2,
}

// 會員身份別
export const IDENTITY = {
  VISITOR: 2,
  SUBSCRIBER: 3,
}

export const PREMIUM_MEMBER = {
  MONTH: 1, // 月付會員
  SEASON: 2, // 季付會員
}

// 媒體版型，長型或寬型
export const MEDIA_SHAPE = {
  LONG: 1,
  WIDE: 5,
}

// MediaColumn 的版型，長為 4，寬為 8
export const COLUMN_SHAPE = {
  LONG: 4,
  WIDE: 8,
}

// 用户拉黑信息 - 操作
export const BLOCK_UPDATE = {
  ADD_BLOCK: 1, // 添加拉黑用戶
  CANCEL_BLOCK: 5, // 撤銷拉黑用戶
}

// 追蹤/退追蹤 api param type
export const FOLLOW_UPDATE = {
  FOLLOW: 1,
  UNFOLLOW: 5,
}

// minePage1 (角色) 顯示內容
export const PERMISSION = {
  VISITOR: {
    avatar: false,
    follow: false,
    profile: false,
    join: true,
    login: true,
    earn: false,
    buyList: false,
    premium: false,
    media: false,
    settings: false,
    help: true,
    beCreator: true,
    prefer: true,
    language: true,
    legal: true,
    feedback: true,
    logout: false,
  },
  REGISTERED: {
    avatar: true,
    follow: true,
    profile: false,
    join: false,
    login: false,
    earn: false,
    buyList: true,
    premium: true,
    media: false,
    settings: true,
    help: true,
    beCreator: true,
    prefer: false,
    language: true,
    legal: true,
    feedback: true,
    logout: true,
  },
  CREATOR: {
    avatar: true,
    follow: true,
    profile: true,
    join: false,
    login: false,
    earn: true,
    buyList: true,
    premium: true,
    media: true,
    settings: true,
    help: true,
    beCreator: true,
    prefer: false,
    language: true,
    legal: true,
    feedback: true,
    logout: true,
  },
}
// 用戶語系對照與資料庫對照
export const LANGUAGE = {
  en: 1, // 英文
  'zh-cn': 5, // 簡體中文
  'zh-tw': 10, // 繁體中文
  es: 15, // 西班牙文
  fr: 20, // 法文
  de: 25, // 德文
  th: 30, // 泰文
  vi: 35, // 越南文
  ja: 40, // 日文
  ko: 45, // 韓文
  ru: 50, // 俄文
  pt: 55, // 葡萄牙語
  id: 60, // 印度尼西亞語
  ar: 65, // 阿拉伯語
  hi: 70, // 印地語
}

// 性別
export const GENDER = {
  MALE: 1,
  FEMALE: 5,
  OTHER: 10,
}

export const INTERESTED_IN = {
  STRAIGHT: 1,
  GAY: 5,
  LESBIAN: 10,
  TRANS: 15,
}

// 性向偏好的 Key-Value 對應，如果 Search.TabCategory 有更動，要同步更新
export const INTERESTED_IN_MAP = {
  straight: INTERESTED_IN.STRAIGHT,
  gay: INTERESTED_IN.GAY,
  lesbian: INTERESTED_IN.LESBIAN,
  transsexual: INTERESTED_IN.TRANS,
}

// 提交紀錄 申請狀態
export const WITHDRAW_LIST_STATUS = {
  PAID: 1,
  NOT_REVIEWED: 15,
  FAIL: 10,
  UNDER_REVIEW: 5,
}

// 提款申請 提款方式
export const WITHDRAW_TYPE = {
  BANK_CARD: 1,
  PAYPAL: 5,
  OTHER: 10,
}

// 打賞類型
export const REWARD_TYPE = {
  VIDEO: 1,
  PHOTO: 5,
  CREATOR: 10,
}

// 消費類型
export const CONSUME_TYPE = {
  SUBSCRIBE: 1,
  REWARD: 5,
  SHOP_BUY: 10,
  UNLOCK: 15,
  CHAT_SUBSCRIBE: 20,
  CHAT_BUY: 25,
  PREMIUM: 30,
}

export const PAYMENT_TYPE = {
  WALLET: 1,
  CREDIT_CARD: 2,
}

export const PAYMENT_STATUS = {
  PENDING: 1,
  SUCCESS: 2,
  FAILED: 3,
}

// 訂閱種類
export const SUB_TYPE = {
  CREATOR: 0, // 創作者
  VIP_MONTH: 1, // 月度會員
  VIP_SEASON: 5, // 月度會員
}

// 訂閱狀態
export const SUB_STATUS = {
  CANCEL_SUB: 1, // 取消訂閱
  RESTORE_SUB: 2, // 恢復訂閱
  RE_SUB: 3, // 重新訂閱
}

// 訂閱狀態
export const AUTO_RENEWAL = {
  SINGLE_SUB: 0, // 單次買斷30天
  MONTH_SUB: 1, // 每月訂閱制
}

// VIP 會員狀態設置
export const VIP_STATUS = {
  CANCEL_SUB: 1, // 取消訂閱
  RESTORE_SUB: 5, // 恢復訂閱
}

// 購買清單 項目種類
export const INVOICE_TYPE = {
  SUBSCRIBE: 1, // 訂閱
  REWARD: 2, // 打賞
  PURCHASE_VIDEO: 3, // 購買視頻
  PURCHASE_PIC: 4, // 購買圖片
  PURCHASE_VIP: 5, // 購買高級會員
  ACTIVITY: 6, // 活動消費
}

// 購買清單 購買高級會員 季月種類
export const PURCHASE_VIP_TYPE = {
  MONTH: 1,
  SEASON: 5,
}

// 创作者中心-数据仪表板-明细 交易類型
export const TRANSACT_TYPE = {
  REWARD: 1, // 打賞
  SUBSCRIBE: 5, // 訂閱
  PRODUCT: 10, // 購買商品
  WITHDRAW: 15, // 提現
  WITHDRAW_ERR: 20, // 提现失败退回
  INVITE_DIVIDED: 25, // 邀请消费分成
}

// 對應 userData.role_id
export const USER_ROLE = {
  GENERAL: 8, // 普通用戶
  UNLOCK: 10, // 解鎖全站用戶
}

// 圖片全屏展示種類
export const FULLSCREEN_PHOTO_TYPE = {
  CLOSE: 0,
  SINGLE: 1,
  MULTIPLE: 2,
}

// 圖片全屏種類依靠此數量為基準
// 小於等於此數為 FULLSCREEN_PHOTO_TYPE.SINGLE
// 大於此數為 FULLSCREEN_PHOTO_TYPE.MULTIPLE
export const FULLSCREEN_TYPE_THRESHOLD = 5

// 收益頁面的媒體頁面篩選器
export const EARN_MEDIA_FILTER = {
  ALL: 0, // 全部
  VIDEO: 1, // 视频
  PHOTO: 5, // 图片
  SHOP: 10, // 商店
  TOP5_VIEW: 15, // top5观看数量
  TOP5_BUY: 20, // top5购买数量
}

// 後端帖子內有個欄位 need_rights 代表當下需要使用者先完成該操作才能繼續使用
export const RIGHTS_TYPE = {
  PASS: 0,
  REGISTER: 1,
  SUBSCRIBE: 2,
}

export const FAVORITE_TAB = {
  PURCHASED: 'purchased',
  LIKED: 'liked',
}

/** 搜索結果類型 */
export const SEARCH_RESULT_TYPE = {
  ALL: 1,
  CREATOR: 2,
  VIDEO: 3,
  PHOTO: 4,
  KEYWORD: 5,
  FAV: 6,
  BUY: 7,
}

/** 搜索結果對應的query參數值 */
export const SEARCH_RESULT_MAP = {
  [SEARCH_RESULT_TYPE.ALL]: 'all',
  [SEARCH_RESULT_TYPE.CREATOR]: 'creator',
  [SEARCH_RESULT_TYPE.VIDEO]: 'video',
  [SEARCH_RESULT_TYPE.PHOTO]: 'photo',
  [SEARCH_RESULT_TYPE.KEYWORD]: 'tag',
  [SEARCH_RESULT_TYPE.FAV]: 'favorite',
  [SEARCH_RESULT_TYPE.BUY]: 'bought',
}

// 媒體列表的篩選條件
export const MEDIA_VISIBILITY = {
  EVERYONE: 1, // 每個人都可看
  SUBSCRIBER: 5, // 只有訂閱者可看
  SHOP: 10, // 商店
  PRIVATE: 15, // 私人的
}

/** 寄送郵箱驗證碼的類型 */
export const SEND_EMAIL_CODE_TYPE = {
  /** 綁定郵箱 */
  BIND: 1,
  /** 更換郵箱 */
  CHANGE: 2,
  /** 重設密碼 */
  RESET_PWD: 3,
}

/**
 * 問題反饋
 * 目前改由前端控制 i18n 多語系
 */
export const feedbackReasons = [
  { id: 1, reason: '支付相關' },
  { id: 2, reason: '帳戶相關' },
  { id: 3, reason: '影片播放' },
  { id: 4, reason: '推薦內容' },
  { id: 5, reason: '訂閱相關' },
  { id: 6, reason: '內容審核' },
  { id: 7, reason: '在地化和語言' },
  { id: 8, reason: '效能與穩定性' },
  { id: 9, reason: '功能許願' },
  { id: 10, reason: '其他問題' },
]

// 信件通知設置的開關
export const NOTIFY_LETTER_SWITCH = {
  TURN_OFF: 0,
  TURN_ON: 1,
}
